package com.mercator.client;

import java.util.Collection;
import java.util.Set;

import com.google.gwt.user.client.ui.Widget;
import com.mercator.client.graph.GenType;
import com.mercator.client.graph.MapName;
import com.mercator.client.main.presenter.RootPresenter;
import com.mercator.client.main.view.MainView;
import com.mercator.client.main.view.RootView;
import com.mercator.client.map.MapModule;
import com.mvp4g.client.annotation.Event;
import com.mvp4g.client.annotation.Events;
import com.mvp4g.client.annotation.module.ChildModule;
import com.mvp4g.client.annotation.module.ChildModules;
import com.mvp4g.client.annotation.module.DisplayChildModuleView;
import com.mvp4g.client.event.EventBus;
import com.mercator.client.graph.GeneSet;

@Events( startView = RootView.class )
@ChildModules( { @ChildModule( moduleClass = MapModule.class )})
public interface AppEventBus extends EventBus {
	@Event(handlers = {RootPresenter.class}) public void textChange(String newText);
	
	
	@Event(modulesToLoad = MapModule.class) public void goToMap(MapName name);
	
	@DisplayChildModuleView(MapModule.class) 
	@Event(handlers = RootPresenter.class)
	public void changeBody(Widget newBody);
	@Event(handlers = RootPresenter.class)
	public void changeMap(Set<? extends GenType> dg);
}
